#include "color.h"

using namespace G3;

//==============================================================================
// Constructors
//==============================================================================
template <class CType>
G3::COL3<CType>::COL3 (CType R, CType G, CType B) {
    r = R; g = G; b = B;
}

template <class CType>
G3::COL4<CType>::COL4 (CType R , CType G, CType B, CType A) {
    r = R; g = G; b = B; a = A;
}

//==============================================================================
// Operators
//==============================================================================
template <class CType>
COL3<CType>& G3::COL3<CType>::operator=(const COL3<CType> &c) {
    r = c.r; g = c.g; b = c.b;

    return *this;
}

template <class CType>
COL4<CType>& G3::COL4<CType>::operator=(const COL4<CType> &c) {
    r = c.r; g = c.g; b = c.b; a = c.a;

    return *this;
}

//==============================================================================
// Explicit template instantiation
//==============================================================================
template class G3::COL3<byte>;
template class G3::COL3<int>;
template class G3::COL3<float>;
template class G3::COL3<double>;

template class G3::COL4<byte>;
template class G3::COL4<int>;
template class G3::COL4<float>;
template class G3::COL4<double>;
